Embodiments of the present invention relate to forward error correction (FEC) codes for communicating information between electronic devices. More particularly, but not exclusively, embodiments of the invention relate to block error correction in communication networks with restrictive decoding latency requirements.
Most communications networks are designed to convey multiple communications simultaneously over each individual communication path, for example, a radio frequency (RF) channel or wired connection, using some type of modulation. In recent years, an increasing demand has arisen for efficient and reliable digital data transfers which assure correct data transmissions at as great a data rate as possible. Forward error correction (FEC) codes have been used in some communications systems for this purpose.
Codes are essentially digital data sequences derived from message sequences and used to convey message information. The rate of a code or “code rate” is the ratio of the number of information bits over the number of code bits. Generally, the lower the code rate, the more reliable the transmission given an equal number of decoding iterations.
In forward error correction (FEC), the transmitted codewords are encoded to provide the abilities of both detection and correction of errors occurring in a transmission, for example resulting from a noisy channel. The receiver in a communication system can recover all the information in the codewords by itself and thus coding lends advantages to high speed communication systems and/or those requiring synchronous communications.
For block coding, as opposed to convolutional coding, an encoder divides the information to be sent into message blocks of length k. In binary block encoding, each message block is represented by a binary k-tuple u=(u1, u2, . . . , uk) called a “message,” thus there are 2k different possible messages altogether. The encoder transforms each message m independently into an n-tuple c=(c1, c2, . . . , cn) called a “codeword.” Therefore, there are 2k different possible codewords at the encoder output. The set of 2k codewords of length n is called a (n, k) “block code.” The code rate (R) using the foregoing denotations is thus R=k/n.
Block coding is typically not used in networks which have narrow decoding latency requirements. For example, in networks in which a response (e.g., an ACK) is used to verify that the message has been correctly received before processing a next message, only a short interval may be allowed for completing processing (for example processing such as, demodulation, FEC and/or cyclic redundancy checks (CRCs)) of the received block code. This short interval is known as a short interframe space (SIFS) in certain wireless architectures. The SIFS requirement dictates that only a short amount of time (for example, 1-3 microseconds) is available to be used for decoding from the reception of the last information bit until a response is generated.
Block encoding has not been used for networks with these type of decoding latency restrictions since the decoding time, and thus the number of decoding iterations, that can be used to decode a last codeword in a block code would be significantly limited, for example by the SIFS requirement. If the code rate for each codeword in a block code is the same, and if the last codeword is decoded with fewer decoding iterations than previous codewords in the block, the codeword error probability (sometimes referred to as bit error rate (BER)) for the last codeword will be higher than for the previous codewords in the block code. This results in an unbalanced codeword error probability within each block code, which is undesirable.
Networks having narrow decoding latency requirements such as SIFS restrict the available decoding time, and thus the number of decoding iterations, that can be used for decoding block codes; particularly for networks having high data transfer speeds and variable length packets or messages such as those used in protocols compatible with the Institute for Electrical and Electronic Engineers (IEEE) 802.11 standards for wireless local area networks (WLANs).
Accordingly, a technique for block coding messages in high throughput communication networks having restrictive decoding latency requirements is desired.